package one.stand.response;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiParam;
import lombok.Data;
import one.stand.model.BaseModel;

import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.Date;

@Data
@ApiModel(value = "企业优惠券")
public class CompanyCouponResponse{
    /**
     * 优惠券id
     */
    @ApiModelProperty(value = "优惠券id")
    private Long couponId;
    /**
     * 归属公司
     */
    @ApiModelProperty(value = "企业id")
    private Long companyId;
    /**
     * 优惠券名称
     */
    @ApiModelProperty(value = "优惠券名称")
    private String name;

    @ApiModelProperty(value = "使用范围,商品分类,如果为空或者为0则视为全场通用")
    private Integer goodstypeId;

    /**
     * 优惠类型1满减，2折扣
     */
    @ApiModelProperty(value = "优惠类型1满减，2折扣")
    private Integer couponType;

    @ApiModelProperty(value = "优惠类型文本")
    private String couponTypeText;
    /**
     * 优惠券面值
     */
    @ApiModelProperty(value = "优惠券面值")
    private BigDecimal couponFaceValue;
    /**
     * 优惠券折扣
     */
    @ApiModelProperty(value = "优惠券折扣")
    private BigDecimal couponDiscount;
    /**
     * 最低消费金额
     */
    @ApiModelProperty(value = "最低消费金额")
    private BigDecimal minAmount;
    /**
     * 发放开始时间
     */
    @ApiModelProperty(value = "发放开始时间 格式：2020-04-26")
    @JsonFormat(pattern="yyyy-MM-dd",timezone = "GMT+8")
    private Date grantStartTime;
    /**
     * 发放截止时间
     */
    @ApiModelProperty(value = "发放截止时间 格式：2020-04-26")
    @JsonFormat(pattern="yyyy-MM-dd",timezone = "GMT+8")
    private Date grantEndTime;
    /**
     * 有效开始时间
     */
    @ApiModelProperty(value = "有效开始时间 格式：2020-04-26")
    @JsonFormat(pattern="yyyy-MM-dd",timezone = "GMT+8")
    private Date effectiveStartTime;
    /**
     * 有效截止时间
     */
    @ApiModelProperty(value = "有效截止时间 格式：2020-04-26")
    @JsonFormat(pattern="yyyy-MM-dd",timezone = "GMT+8")
    private Date effectiveEndTime;
    /**
     * 发放类型/方式，1：自动发放，2手动领取，3红包发放
     */
    @ApiModelProperty(value = "发放类型，1：自动发放，2手动领取，3红包发放")
    private Integer grantMode;

    @ApiModelProperty(value = "发放类型，1：自动发放，2手动领取，3红包发放")
    private String grantModeText;
    /**
     * 投放对象1:所有对象
     */
    @ApiModelProperty(value = "投放对象1:所有对象")
    private Integer grantObject;

    @ApiModelProperty(value = "投放对象")
    private String grantObjectText;
    /**
     * 优惠卷发放数量 0 表示不限制
     */
    @ApiModelProperty(value = "发放数量")
    private Integer couponNum;
    /**
     * 领取数量
     */
    @ApiModelProperty(value = "领取数量")
    private Integer receiveNum;

    /**
     * 同一用户最多发放多少 0 不限制
     */
    @ApiModelProperty(value = "同一用户最多发放多少")
    private Integer maxUser;
    /**
     * 发布状态 1禁用 2启用
     */
    @ApiModelProperty(value = "发布状态 默认1禁用 2启用")
    private Integer pubState;
    /**
     * 优惠券备注
     */
    @ApiModelProperty(value = "优惠券备注")
    private String note;

    @ApiModelProperty(value = "商品类型名")
    private String goodsTypeName;

    @ApiModelProperty(value = "企业名")
    private String companyName;

    @ApiModelProperty(value = " 是否已经领取")
    private boolean isReceidved;
}
